package priv.conceit.study.book.lambda.chapter5;

import priv.conceit.study.book.lambda.common.entity.Album;
import priv.conceit.study.book.lambda.common.entity.Artist;
import priv.conceit.study.book.lambda.common.entity.SampleData;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * 高级集合类 和 收集器
 * 5.3.4
 * 数据分组
 *
 *
 *
 * @author Conceit
 * @since 1.0.0, 2021/10/1
 */
public class GroupingData {

    public static void main(String[] args) {
        //按照主唱对所有专辑进行数据分组
        //key为主唱
        //value为主场的专辑
        //groupingBy有三个重载方法 这里只介绍简单方法
        Map<Artist, List<Album>> map=SampleData.albumAllStream.collect(Collectors.groupingBy(album -> album.getMainMusician()));
        map.forEach((k,v)->{
            System.out.println(k);
            System.out.println(v);
        });
    }
}
